//    Openbravo POS is a point of sales application designed for touch screens.
//    Copyright (C) 2007-2009 Openbravo, S.L.
//    http://www.openbravo.com/product/pos
//
//    This file is part of Openbravo POS.
//
//    Openbravo POS is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    Openbravo POS is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with Openbravo POS.  If not, see <http://www.gnu.org/licenses/>.

package com.openbravo.pos.inventory;

import java.util.Date;

import com.openbravo.bean.StockDiary;
import com.openbravo.data.basic.BasicException;
import com.openbravo.data.user.I_SaveProvider;
import com.openbravo.data.user.I_ListProvider;
import com.openbravo.pos.base.AppLocal;
import com.openbravo.pos.base.AppView;

import cn.ekuma.data.ui.swing.SwingEditorRecord;
import cn.ekuma.epos.datalogic.I_DataLogicSales;
import cn.ekuma.epos.module.ERP_UI_Swing_Model;
import cn.ekuma.rabbit.spi.I_ModelPart;

import com.openbravo.pos.panels.JPanelTable;

/**
 *
 * @author adrianromero
 */
public class StockDiaryPanel extends JPanelTable implements I_ModelPart<ERP_UI_Swing_Model>{
    
    private StockDiaryEditor jeditor;    
    private I_DataLogicSales m_dlSales;
    
    /** Creates a new instance of JPanelDiaryEditor */
    public StockDiaryPanel() {
    }
    
    protected void init() {
        
        jeditor = new StockDiaryEditor((AppView) app, dirty, m_dlSales); 
    }
    
    public I_ListProvider getListProvider() {
        return null;
    }
    
    public I_SaveProvider getSaveProvider() {
        return  new I_SaveProvider(){

			@Override
			public boolean canDelete() {
				
				return true;
			}

			@Override
			public int deleteData(Object value) throws BasicException {
				
				return m_dlSales.stockDiarySub(getForObects((Object[]) value));
			}

			@Override
			public boolean canInsert() {
				// TODO Auto-generated method stub
				return true;
			}

			@Override
			public int insertData(Object value) throws BasicException {
				
				return m_dlSales.stockDiaryAdd(getForObects((Object[]) value));
			}

			@Override
			public boolean canUpdate() {
				return false;
			}

			@Override
			public int updateData(Object value) throws BasicException {
				return 0;
			}
        	
			
			private StockDiary getForObects(Object[] objs){
				StockDiary obj=new StockDiary();
				obj.setId((String) objs[0]);
				obj.setDate((Date) objs[1]);
				obj.setReason((String) objs[2]);
				obj.setLocation((String) objs[3]);
				obj.setProductID((String) objs[4]);
				obj.setProductAttSetInstId((String) objs[5]);
				obj.setMultiply((Double) objs[6]);
				obj.setPrice((Double) objs[7]);
				return obj;
			}
        };      
    }
    
    public SwingEditorRecord getEditor() {
        return jeditor;
    }
    
    public String getTitle() {
        return AppLocal.getIntString("Menu.StockDiary");
    }     
    
        
    public void activate() throws BasicException {
        jeditor.activate(); // primero activo el editor 
        super.activate();   // segundo activo el padre        
    }

	@Override
	public String getModelName() {
		return ERP_UI_Swing_Model.MODEL_NAME;
	}

	@Override
	public void setModel(ERP_UI_Swing_Model mode) {
		m_dlSales = mode.getDLSales();
		
	} 
}
